Reasoning about Behavioral Conflicts between Aspects
نویسندگان
چکیده
Aspects have been successfully promoted as a means to improve the modularization of software in the presence of crosscutting concerns. The socalled aspect interference problem is considered to be one of the remaining challenges of aspect-oriented software development: aspects may interfere with the behavior of the base code or other aspects. Especially interference between aspects is difficult to prevent, as this may be caused solely by the composition of aspects that behave correctly in isolation. A typical situation where this may occur is when multiple advices are applied at the same , or shared, join point. In this paper we explain the problem of behavioral conflicts between aspects at shared join points, illustrated by a real-world example. We present an approach for the detection of behavioral conflicts that is based on a novel abstraction model for representing the behavior of advice. This model allows the expression of both primitive and complex behavior in a simple manner that is suitable for automated conflict detection. The approach employs a set of conflict detection rules which can be used to detect both generic conflicts as well as domainor application specific conflicts. This approach is general for AOP languages, and its application to both Compose* and AspectJ is illustrated in this paper. The application to Compose* demonstrates how the use of a declarative advice language can be exploited for fully automated conflict detection, without the need to annotate the aspect behavior. The approach has been implemented and tested within the Compose* and
منابع مشابه
Reasoning About Semantic Conflicts Between Aspects
The AOP community has successfully promoted and illustrated the power and elegance of aspect-oriented programming. One of the main problems of Aspect-oriented programming is, however, the aspect interference problem. When multiple aspects are superimposed on the same join point, undesired or incorrect behavior may emerge due to the side effects of behavior of the aspects at the join point. In t...
متن کاملObliviousness, Modular Reasoning, and the Behavioral Subtyping Analogy
The obliviousness property of AspectJ conflicts with the ability to reason about an AspectJ program in a modular fashion. This makes debugging and maintenance difficult. In object-oriented programming, the discipline of behavioral subtyping allows one to reason about programs modularly, despite the somewhat oblivious nature of dynamic binding; however, it is not clear what discipline would help...
متن کاملManaging Conflicts in Reflective Agents
This chapter addresses management of conflicts in an agent by means of reflective reasoning. A structure for reflective agents is proposed within which reasoning about observation, assumption making and communication; an agent's own information state and reasoning processes; other agents' information states and reasoning processes, and combinations of these types of reflective reasoning are exp...
متن کاملThe Effectiveness of Transactional Analysis Training in Reducing Parent-Child Conflicts among Male High School Students
This study aimed to investigate the impact of transactional analysis training on parent-child conflicts among male high school students. This quasi-experimental research had a pretest-posttest control group design. The statistical population of the study was comprised of all male first graders of high school in Central Marhamat Abad district, West Azerbaijan Province, in school year 2014-15. Th...
متن کاملDeclarative & Procedural Goals in Intelligent Agent Systems1
An important concept for intelligent agent systems is goals. Goals have two aspects: declarative (a description of the state sought), and procedural (a set of plans for achieving the goal). A declarative view of goals is necessary in order to reason about important properties of goals, while a procedural view of goals is necessary to ensure that goals can be achieved efficiently in dynamic envi...
متن کامل